/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package factoryDinamico;

import dao.IPessoaDAO;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.Pessoa;

/**
 *
 * @author Guilherme
 */
public class TipoDAOFactory {
    static Properties tipoDAO = new Properties();
    static String dao;

    public static void carregaDAO() {
        try {
            tipoDAO.load(new FileInputStream("src/properties/tipoDAO.properties"));            
        } catch (IOException ex) {
            Logger.getLogger(TipoDAOFactory.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static List<Object> listaDAO() {
        return new ArrayList<Object>(tipoDAO.keySet());
    }

    public static IPessoaDAO<Pessoa> create(String name) throws Exception {
        IPessoaDAO p = null;
//        try {
            dao = tipoDAO.getProperty(name);
            Class classe = Class.forName(dao);
            Object object = classe.newInstance();
            p = (IPessoaDAO) object;
//        } catch (Exception e) {
//            throw new Exception("DAO nao implementada!");
//        }
        return p;
    }
    
}

//public static IFiltroPessoa create(String name) throws Exception {
//        IFiltroPessoa f = null;
//        try {
//            filtros = tipoFiltros.getProperty(name);
//            Class classe = Class.forName(filtros);
//            Object object = classe.newInstance();
//            f = (IFiltroPessoa) object;
//        } catch (Exception e) {
//            throw new Exception("Filtro não existe.");
//        }
//        return f;
//    }
